﻿Public Class GestioneMedico

#Region "Dichiarazioni"
    Dim ut As New util
    Dim med As New Medico
    Dim medMan As New MedicoManager
    Dim stato As String
#End Region

#Region "Inizializzazione Maschera"
    Private Sub GestioneMedico_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Show()
        StatoCampi(0)
    End Sub
    Public Sub StatoCampi(ByVal indice As Integer)
        If indice = 0 Then
            ut.disabilitaCampi(Me)
            ut.puliscicampi(Me)
            txtCodMedico.Enabled = True
            btnRicerca.Enabled = True
            btnInserisci.Enabled = True
            stato = "Ins"
        ElseIf indice = 1 Then
            txtCodMedico.Enabled = False
            btnInserisci.Enabled = False
            btnElimina.Enabled = True
            btnRicerca.Enabled = False
            groupBox1.Enabled = True
            groupBox2.Enabled = True
            btnConferma.Enabled = True
            btnPulisci.Enabled = True
        End If
    End Sub

#End Region

#Region "Controllo Campi"
    Public Function ControllaMedico() As Boolean
        ControllaMedico = True
        errorProv.SetError(txtCodMedico, "")
        If CaricaMedico() Then
            ControllaMedico = True
        Else
            If txtCodMedico.Text.Trim = "" Then
                txtCodMedico.Text = medMan.CalcolaCodiceMedico()
            ElseIf IsNumeric(txtCodMedico.Text) Then
                MsgBox("Un codice medico verrà calcolato automaticamente", MsgBoxStyle.OkOnly, "AVVISO")
                ControllaMedico = True
            Else
                errorProv.SetError(txtCodMedico, "Il codice inserito non è numerico")
            End If
        End If
    End Function



#End Region

#Region "Caricamento Dati"

    Public Function CaricaMedico() As Boolean
        CaricaMedico = True
        Dim med As New Medico
        med = medMan.GetMedico(txtCodMedico.Text)
        If med.isNothing = True Then
            CaricaMedico = False
        Else
            txtCodMedico.Text = med.codiceMedico
            txtNome.Text = med.nome
            txtCognome.Text = med.cognome
            txtCAP.Text = med.cap
            txtCellulare.Text = med.telefono2
            txtTelefono.Text = med.telefono1
            txtCitta.Text = med.citta
            txtCodFisc.Text = med.codiceFiscale
            txtDataNascita.Text = med.dataNascita
            txtEmail.Text = med.email
            txtIndirizzo.Text = med.indirizzo
            txtNome.Text = med.nome
            txtSpecializzazione.Text = med.specializzazione
        End If
    End Function

#End Region

#Region "Bottoni ed Eventi"

    Private Sub btnConferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConferma.Click
        If Not (ut.controlloCampoVuoto(txtNome, errorProv) And ut.controlloCampoVuoto(txtCognome, errorProv) And ut.controllaData(txtDataNascita, errorProv, 1) And _
                ut.controlloLunghezzaCampo(txtCodFisc, errorProv, 16) And ut.controllaCampoNumerico(txtCAP, errorProv) And ut.controlloLunghezzaCampo(txtCAP, errorProv, 5)) Then
            Exit Sub
        End If
        Dim med As New Medico
        med.codiceMedico = txtCodMedico.Text
        med.nome = txtNome.Text
        med.cognome = txtCognome.Text
        med.dataNascita = ut.convertData(CDate(txtDataNascita.Text))
        If rbF.Checked = True Then
            med.sex = "F"
        Else
            med.sex = "M"
        End If
        med.codiceFiscale = txtCodFisc.Text
        med.specializzazione = txtSpecializzazione.Text
        med.indirizzo = txtIndirizzo.Text
        med.citta = txtCitta.Text
        med.cap = txtCAP.Text
        med.provincia = cbProvincia.Text
        med.telefono1 = txtTelefono.Text
        med.email = txtEmail.Text
        med.telefono2 = txtCellulare.Text
        Dim mm As MedicoManager = New MedicoManager(med)
        If stato = "Ins" Then
            mm.InsertMedico()
            StatoCampi(0)
        ElseIf stato = "Mod" Then
            mm.UpdateMedico(txtCodMedico.Text)
            StatoCampi(0)
        End If
        MsgBox("Medico correttamente inserito", MsgBoxStyle.Information)

    End Sub

    Private Sub btnInserisci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserisci.Click
        If Not ControllaMedico() Then
            Exit Sub
        End If
        If CaricaMedico() Then   'cioè il codice è di un medico esistente
            lblAvviso.Text = "Modalità : Modifica"
            stato = "Mod"
        Else
            lblAvviso.Text = "Modalità : Inserimento"
            stato = "Ins"
        End If
        StatoCampi(1)  'abilita/disabilita i campi
        txtNome.Focus()
        'med.cap = txtCAP.Text
        'med.citta = txtCitta.Text
        'med.codiceFiscale = txtCodfisc.Text
        'med.cognome = txtCognome.Text
        'med.dataNascita = txtDataNascita.Text
        'med.email = txtEmail.Text
        'med.indirizzo = txtIndirizzo.Text
        'med.nome = txtNome.Text
        'med.provincia = cbProvincia.SelectedText
        'If rbF.Checked = True Then
        '    med.sex = "F"
        'Else
        '    med.sex = "M"
        'End If
        'med.specializzazione = txtSpecializzazione.Text
        'med.telefono1 = txtTelefono.Text
        'med.telefono2 = txtCellulare.Text
        'medMan = New MedicoManager(med)
        'medMan.InsertMedico()

    End Sub

    Private Sub btnElimina_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnElimina.Click
        medMan.DeleteMedico(txtCodMedico.Text)
        StatoCampi(0)
    End Sub
    Private Sub btnPulisci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPulisci.Click
        ut.puliscicampi(Me)
        StatoCampi(0)
    End Sub
#End Region




End Class